<?php 
class GoodsTypeModel extends Model{
	public $table='goods_type';
	public function __init(){

	}
	//执行create()函数时自动验证
	public $validate=array(
		array('cat_name','nonull','类型名不能为空',2,3),
		array('cat_name','checkCatName','类型名已经存在',2,3)
	);
	//验证类型名是否已经存在
	public function checkCatName($name,$value,$msg,$arg){
		$data=$this->where("cat_name='$value'")->find();
		if($cid=Q('cat_id')){//编辑
			return empty($data) || $data['cat_id']==$cid?true:$msg;
		}else{//添加
			return $data?$msg:true;
		}
	}
	//创建缓存
	public function updateCache(){
		$goods_type=$this->all();
		$cache=array();
		foreach ($goods_type as $key => $gt) {
			$cache[$gt['cat_id']]=$gt;
		}
		return S('goods_type',$cache);
	}
	//添加类型模型
	public function addGoodsType(){
		if($this->create()){
			if($this->add()){
				$this->updateCache();
				return true;
			}else{
				$this->error='类型添加失败';
				return false;
			}
		}
	}
	//编辑类型模型
	public function editGoodsType(){
		if($this->create()){
			if($this->save()){
				$this->updateCache();
				return true;
			}else{
				$this->error='商品类型编辑失败';
				return false;
			}
		}
	}

	public function delGoodsType(){
		$cat_id=Q('cat_id');
		if($this->del($cat_id)){
			/*
			删除商品类型时，该类型的属性，也要删除
			*/
			M('attribute')->where("cat_id=$cat_id")->del();
			//更新缓存
			$this->updateCache();
			return true;
		}else{
			$this->error='商品类型删除失败';
			return false;
		}
	}


}


?>